package com.ruoyi.quartz.service.impl;

import com.ruoyi.quartz.service.IWarningService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**
 * WarningServiceImpl TODO
 *
 * @author augustqin
 * @Date 2025/2/18 13:53
 */
@Service
public class WarningServiceImpl implements IWarningService {
    // 定时任务：每5分钟执行一次
    @Override
    @Scheduled(cron = "0 0/5 * * * ?")  // cron 表达式：每5分钟执行一次
    public void checkWarningConditions() {
        // 1. 获取系统状态或业务数据
        int systemUsage = getSystemUsage(); // 假设这是获取系统使用情况的逻辑
        int threshold = 80; // 设置阈值

        // 2. 判断是否触发预警
        if (systemUsage > threshold) {
            // 3. 触发预警：例如发送邮件、短信、推送通知等
            sendWarningNotification(systemUsage);
        }
    }

    // 获取系统使用情况的示例方法（可以根据需求更改）
    private int getSystemUsage() {
        // 假设返回一个系统的资源使用情况，具体实现根据业务需求来写
        return 85;  // 例子：系统使用率为85%
    }

    // 发送预警通知
    private void sendWarningNotification(int usage) {
        // 发送邮件或短信等通知
        System.out.println("预警通知：系统使用率过高，当前使用率：" + usage + "%");
        // 这里可以调用邮件、短信、推送服务来通知相关人员
    }
}